home *** CD-ROM | disk | FTP | other *** search
/ CD ROM Paradise Collection 4 / CD ROM Paradise Collection 4 1995 Nov.iso / program / swags_z.zip / STRINGS.SWG / 0059_Fast Upper-Lower Case.pas < prev    next >
Pascal/Delphi Source File  |  1993-09-26  |  1KB  |  64 lines

  1. (*
  2. From: LEE BARKER
  3. Subj: FAST Up/Low Case CORRECTION
  4. *)
  5.  
  6. Uses CRT;
  7.  
  8.   function LoStr(const s:string):string; assembler;
  9.   asm
  10.     push ds
  11.     lds  si,s
  12.     les  di,@result
  13.     lodsb            { load and store length of string }
  14.     stosb
  15.     xor  ch,ch
  16.     mov  cl,al
  17.     jcxz @empty      { FIX for null string }
  18.   @LowerLoop:
  19.     lodsb
  20.     cmp  al,'A'
  21.     jb   @cont
  22.     cmp  al,'Z'
  23.     ja   @cont
  24.     add  al,' '
  25.   @cont:
  26.     stosb
  27.     loop @LowerLoop
  28.   @empty:
  29.     pop  ds
  30.   end;  { LoStr }
  31.  
  32.   function UpStr(const s:string):string; assembler;
  33.   asm
  34.     push ds
  35.     lds  si,s
  36.     les  di,@result
  37.     lodsb            { load and store length of string }
  38.     stosb
  39.     xor  ch,ch
  40.     mov  cl,al
  41.     jcxz @empty      { FIX for null length string }
  42.   @upperLoop:
  43.     lodsb
  44.     cmp  al,'a'
  45.     jb   @cont
  46.     cmp  al,'z'
  47.     ja   @cont
  48.     sub  al,' '
  49.   @cont:
  50.     stosb
  51.     loop @UpperLoop
  52.   @empty:
  53.     pop  ds
  54.   end;  { UpStr }
  55.  
  56. VAR S : String;
  57.  
  58. BEGIN
  59.   ClrScr;
  60.   WriteLn(LoStr('LEE BARKER'));
  61.   WriteLn(UpStr('lee barker'));
  62.   Readkey;
  63. END.
  64.